home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / util / misc / NVX_timeul2.lha / C_Source.lha / GUI.c < prev    next >
C/C++ Source or Header  |  1992-09-02  |  10KB  |  386 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0b
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : M.Meany, © MMSoftware.
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <intuition/intuition.h>
  10. #include <intuition/classes.h>
  11. #include <intuition/classusr.h>
  12. #include <intuition/imageclass.h>
  13. #include <intuition/gadgetclass.h>
  14. #include <libraries/gadtools.h>
  15. #include <graphics/displayinfo.h>
  16. #include <graphics/gfxbase.h>
  17. #include <clib/exec_protos.h>
  18. #include <clib/intuition_protos.h>
  19. #include <clib/gadtools_protos.h>
  20. #include <clib/graphics_protos.h>
  21. #include <clib/utility_protos.h>
  22. #include <string.h>
  23.  
  24. #include "GUI.h"
  25.  
  26. struct Screen         *Scr = NULL;
  27. UBYTE                 *PubScreenName = NULL;
  28. APTR                   VisualInfo = NULL;
  29. struct Window         *MarksWnd = NULL;
  30. struct Window         *Project1Wnd = NULL;
  31. struct Gadget         *MarksGList = NULL;
  32. struct Gadget         *Project1GList = NULL;
  33. struct IntuiMessage    MarksMsg;
  34. struct IntuiMessage    Project1Msg;
  35. UWORD                  MarksZoom[4];
  36. struct Gadget         *MarksGadgets[10];
  37. struct Gadget         *Project1Gadgets[1];
  38. UWORD                  MarksLeft = 144;
  39. UWORD                  MarksTop = 33;
  40. UWORD                  MarksWidth = 358;
  41. UWORD                  MarksHeight = 172;
  42. UWORD                  Project1Left = 152;
  43. UWORD                  Project1Top = 57;
  44. UWORD                  Project1Width = 345;
  45. UWORD                  Project1Height = 96;
  46. UBYTE                 *MarksWdt = (UBYTE *)"NVX Upload Calculator";
  47. UBYTE                 *Project1Wdt = (UBYTE *)"About This Great Util ;-)";
  48.  
  49. UBYTE *Gadget100Labels[] = {
  50.     (UBYTE *)"300",
  51.     (UBYTE *)"1200",
  52.     (UBYTE *)"2400",
  53.     (UBYTE *)"4800",
  54.     (UBYTE *)"9600",
  55.     (UBYTE *)"14400",
  56.     (UBYTE *)"16800",
  57.     (UBYTE *)"19200",
  58.     (UBYTE *)"21600",
  59.     (UBYTE *)"28800",
  60.     NULL };
  61.  
  62. struct TextAttr topaz8 = {
  63.     ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
  64.  
  65. struct IntuiText MarksIText[] = {
  66.     1, 0, JAM1,7, 17, &topaz8, (UBYTE *)"Baud Rate", &MarksIText[1],
  67.     1, 0, JAM1,94, 6, &topaz8, (UBYTE *)"Filename", &MarksIText[2],
  68.     1, 0, JAM1,234, 6, &topaz8, (UBYTE *)"Size (Bytes)", NULL };
  69.  
  70. struct IntuiText Project1IText[] = {
  71.     1, 0, JAM1,63, 1, &topaz8, (UBYTE *)"Programmed by: STIGG // NVX", &Project1IText[1],
  72.     1, 0, JAM1,9, 27, &topaz8, (UBYTE *)"Trick Or Treat II", &Project1IText[2],
  73.     1, 0, JAM1,9, 36, &topaz8, (UBYTE *)"+44 (0)1703 391797", &Project1IText[3],
  74.     1, 0, JAM1,45, 53, &topaz8, (UBYTE *)"The Edge", &Project1IText[4],
  75.     1, 0, JAM1,10, 63, &topaz8, (UBYTE *)"+44 (0)1226 289303", &Project1IText[5],
  76.     1, 0, JAM1,227, 27, &topaz8, (UBYTE *)"13th Hour", &Project1IText[6],
  77.     1, 0, JAM1,186, 36, &topaz8, (UBYTE *)"+44 (0)1704 505845", &Project1IText[7],
  78.     1, 0, JAM1,220, 53, &topaz8, (UBYTE *)"Power Plant", &Project1IText[8],
  79.     1, 0, JAM1,186, 62, &topaz8, (UBYTE *)"+44 (0)1229 431590", &Project1IText[9],
  80.     1, 0, JAM1,50, 14, &topaz8, (UBYTE *)"___Call these fine NVX BBS's___", NULL };
  81.  
  82. UWORD MarksGTypes[] = {
  83.     LISTVIEW_KIND,
  84.     MX_KIND,
  85.     TEXT_KIND,
  86.     BUTTON_KIND,
  87.     BUTTON_KIND,
  88.     BUTTON_KIND,
  89.     BUTTON_KIND,
  90.     TEXT_KIND,
  91.     NUMBER_KIND,
  92.     BUTTON_KIND
  93. };
  94.  
  95. UWORD Project1GTypes[] = {
  96.     BUTTON_KIND
  97. };
  98.  
  99. struct NewGadget MarksNGad[] = {
  100.     84, 15, 260, 120, NULL, NULL, GD_Gadget00, 0, NULL, (APTR)Gadget00Clicked,
  101.     63, 25, 17, 9, NULL, NULL, GD_Gadget10, PLACETEXT_LEFT, NULL, (APTR)Gadget10Clicked,
  102.     224, 157, 119, 11, (UBYTE *)"Est. UL Time:", NULL, GD_Gadget20, PLACETEXT_LEFT, NULL, NULL,
  103.     84, 131, 92, 12, (UBYTE *)"_Add", NULL, GD_Gadget30, PLACETEXT_IN, NULL, (APTR)Gadget30Clicked,
  104.     177, 131, 88, 12, (UBYTE *)"_Delete", NULL, GD_Gadget40, PLACETEXT_IN, NULL, (APTR)Gadget40Clicked,
  105.     265, 131, 79, 12, (UBYTE *)"_Clear", NULL, GD_Gadget50, PLACETEXT_IN, NULL, (APTR)Gadget50Clicked,
  106.     5, 131, 78, 12, (UBYTE *)"About", NULL, GD_Gadget60, PLACETEXT_IN, NULL, (APTR)Gadget60Clicked,
  107.     196, 145, 147, 11, (UBYTE *)"Total Size:", NULL, GD_Gadget70, PLACETEXT_LEFT, NULL, NULL,
  108.     36, 157, 63, 11, (UBYTE *)"CPS", NULL, GD_Gadget80, PLACETEXT_LEFT, NULL, NULL,
  109.     5, 116, 78, 15, (UBYTE *)"_Help", NULL, GD_Gadget90, PLACETEXT_IN, NULL, (APTR)Gadget90Clicked
  110. };
  111.  
  112. struct NewGadget Project1NGad[] = {
  113.     92, 78, 153, 12, (UBYTE *)"That's Just Dandy!", NULL, GD_Gadget01, PLACETEXT_IN, NULL, (APTR)Gadget01Clicked
  114. };
  115.  
  116. ULONG MarksGTags[] = {
  117.     (GTLV_ShowSelected), NULL, (TAG_DONE),
  118.     (GTMX_Labels), (ULONG)&Gadget100Labels[ 0 ], (TAG_DONE),
  119.     (GTTX_Border), TRUE, (TAG_DONE),
  120.     (GT_Underscore), '_', (TAG_DONE),
  121.     (GT_Underscore), '_', (TAG_DONE),
  122.     (GT_Underscore), '_', (TAG_DONE),
  123.     (TAG_DONE),
  124.     (GTTX_Border), TRUE, (TAG_DONE),
  125.     (GTNM_Number), 30, (GTNM_Border), TRUE, (TAG_DONE),
  126.     (GT_Underscore), '_', (TAG_DONE)
  127. };
  128.  
  129. ULONG Project1GTags[] = {
  130.     (TAG_DONE)
  131. };
  132.  
  133. int SetupScreen( void )
  134. {
  135.     if ( ! ( Scr = LockPubScreen( PubScreenName )))
  136.         return( 1L );
  137.  
  138.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  139.         return( 2L );
  140.  
  141.     return( 0L );
  142. }
  143.  
  144. void CloseDownScreen( void )
  145. {
  146.     if ( VisualInfo ) {
  147.         FreeVisualInfo( VisualInfo );
  148.         VisualInfo = NULL;
  149.     }
  150.  
  151.     if ( Scr        ) {
  152.         UnlockPubScreen( NULL, Scr );
  153.         Scr = NULL;
  154.     }
  155. }
  156.  
  157. void MarksRender( void )
  158. {
  159.     UWORD        offx, offy;
  160.  
  161.     offx = MarksWnd->BorderLeft;
  162.     offy = MarksWnd->BorderTop;
  163.  
  164.  
  165.     DrawBevelBox( MarksWnd->RPort, offx + 84, offy + 4, 260, 11, GT_VisualInfo, VisualInfo, TAG_DONE );
  166.     DrawBevelBox( MarksWnd->RPort, offx + 5, offy + 15, 78, 101, GT_VisualInfo, VisualInfo, TAG_DONE );
  167.     PrintIText( MarksWnd->RPort, MarksIText, offx, offy );
  168. }
  169.  
  170. int HandleMarksIDCMP( void )
  171. {
  172.     struct IntuiMessage    *m;
  173.     int            (*func)();
  174.     BOOL            running = TRUE;
  175.  
  176.     while( m = GT_GetIMsg( MarksWnd->UserPort )) {
  177.  
  178.         CopyMem(( char * )m, ( char * )&MarksMsg, (long)sizeof( struct IntuiMessage ));
  179.  
  180.         GT_ReplyIMsg( m );
  181.  
  182.         switch ( MarksMsg.Class ) {
  183.  
  184.             case    IDCMP_REFRESHWINDOW:
  185.                 GT_BeginRefresh( MarksWnd );
  186.                 MarksRender();
  187.                 GT_EndRefresh( MarksWnd, TRUE );
  188.                 break;
  189.  
  190.             case    IDCMP_CLOSEWINDOW:
  191.                 running = MarksCloseWindow();
  192.                 break;
  193.  
  194.             case    IDCMP_VANILLAKEY:
  195.                 running = MarksVanillaKey();
  196.                 break;
  197.  
  198.             case    IDCMP_GADGETUP:
  199.             case    IDCMP_GADGETDOWN:
  200.                 func = ( void * )(( struct Gadget * )MarksMsg.IAddress )->UserData;
  201.                 running = func();
  202.                 break;
  203.  
  204.             case    IDCMP_MENUPICK:
  205.                 break;
  206.         }
  207.     }
  208.     return( running );
  209. }
  210.  
  211. int OpenMarksWindow( void )
  212. {
  213.     struct NewGadget    ng;
  214.     struct Gadget    *g;
  215.     UWORD        lc, tc;
  216.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  217.  
  218.     if ( ! ( g = CreateContext( &MarksGList )))
  219.         return( 1L );
  220.  
  221.     for( lc = 0, tc = 0; lc < Marks_CNT; lc++ ) {
  222.  
  223.         CopyMem((char * )&MarksNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  224.  
  225.         ng.ng_VisualInfo = VisualInfo;
  226.         ng.ng_TextAttr   = &topaz8;
  227.         ng.ng_LeftEdge  += offx;
  228.         ng.ng_TopEdge   += offy;
  229.  
  230.         MarksGadgets[ lc ] = g = CreateGadgetA((ULONG)MarksGTypes[ lc ], g, &ng, ( struct TagItem * )&MarksGTags[ tc ] );
  231.  
  232.         while( MarksGTags[ tc ] ) tc += 2;
  233.         tc++;
  234.  
  235.         if ( NOT g )
  236.             return( 2L );
  237.     }
  238.  
  239.         MarksZoom[0] = MarksZoom[1] = 0;
  240.     if ( MarksWdt )
  241.         MarksZoom[2] = TextLength( &Scr->RastPort, (UBYTE *)MarksWdt, strlen((char *)MarksWdt )) + 80;
  242.     else
  243.         MarksZoom[2]  = 80L;
  244.         MarksZoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  245.  
  246.     if ( ! ( MarksWnd = OpenWindowTags( NULL,
  247.                 WA_Left,    MarksLeft,
  248.                 WA_Top,        MarksTop,
  249.                 WA_Width,    MarksWidth,
  250.                 WA_Height,    MarksHeight + offy,
  251.                 WA_IDCMP,    LISTVIEWIDCMP|MXIDCMP|TEXTIDCMP|BUTTONIDCMP|NUMBERIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
  252.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
  253.                 WA_Gadgets,    MarksGList,
  254.                 WA_Title,    MarksWdt,
  255.                 WA_ScreenTitle,    "                                Nerve Axis",
  256.                 WA_PubScreen,    Scr,
  257.                 WA_Zoom,    MarksZoom,
  258.                 TAG_DONE )))
  259.     return( 4L );
  260.  
  261.     GT_RefreshWindow( MarksWnd, NULL );
  262.  
  263.     MarksRender();
  264.  
  265.     return( 0L );
  266. }
  267.  
  268. void CloseMarksWindow( void )
  269. {
  270.     if ( MarksWnd        ) {
  271.         CloseWindow( MarksWnd );
  272.         MarksWnd = NULL;
  273.     }
  274.  
  275.     if ( MarksGList      ) {
  276.         FreeGadgets( MarksGList );
  277.         MarksGList = NULL;
  278.     }
  279. }
  280.  
  281. void Project1Render( void )
  282. {
  283.     UWORD        offx, offy;
  284.  
  285.     offx = Project1Wnd->BorderLeft;
  286.     offy = Project1Wnd->BorderTop;
  287.  
  288.     PrintIText( Project1Wnd->RPort, Project1IText, offx, offy );
  289. }
  290.  
  291. int HandleProject1IDCMP( void )
  292. {
  293.     struct IntuiMessage    *m;
  294.     int            (*func)();
  295.     BOOL            running = TRUE;
  296.  
  297.     while( m = GT_GetIMsg( Project1Wnd->UserPort )) {
  298.  
  299.         CopyMem(( char * )m, ( char * )&Project1Msg, (long)sizeof( struct IntuiMessage ));
  300.  
  301.         GT_ReplyIMsg( m );
  302.  
  303.         switch ( Project1Msg.Class ) {
  304.  
  305.             case    IDCMP_REFRESHWINDOW:
  306.                 GT_BeginRefresh( Project1Wnd );
  307.                 Project1Render();
  308.                 GT_EndRefresh( Project1Wnd, TRUE );
  309.                 break;
  310.  
  311.             case    IDCMP_CLOSEWINDOW:
  312.                 running = Project1CloseWindow();
  313.                 break;
  314.  
  315.             case    IDCMP_GADGETUP:
  316.                 func = ( void * )(( struct Gadget * )Project1Msg.IAddress )->UserData;
  317.                 running = func();
  318.                 break;
  319.         }
  320.     }
  321.     return( running );
  322. }
  323.  
  324. int OpenProject1Window( void )
  325. {
  326.     struct NewGadget    ng;
  327.     struct Gadget    *g;
  328.     UWORD        lc, tc;
  329.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  330.  
  331.     if ( ! ( g = CreateContext( &Project1GList )))
  332.         return( 1L );
  333.  
  334.     for( lc = 0, tc = 0; lc < Project1_CNT; lc++ ) {
  335.  
  336.         CopyMem((char * )&Project1NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  337.  
  338.         ng.ng_VisualInfo = VisualInfo;
  339.         ng.ng_TextAttr   = &topaz8;
  340.         ng.ng_LeftEdge  += offx;
  341.         ng.ng_TopEdge   += offy;
  342.  
  343.         Project1Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project1GTypes[ lc ], g, &ng, ( struct TagItem * )&Project1GTags[ tc ] );
  344.  
  345.         while( Project1GTags[ tc ] ) tc += 2;
  346.         tc++;
  347.  
  348.         if ( NOT g )
  349.             return( 2L );
  350.     }
  351.  
  352.     if ( ! ( Project1Wnd = OpenWindowTags( NULL,
  353.                 WA_Left,    Project1Left,
  354.                 WA_Top,        Project1Top,
  355.                 WA_Width,    Project1Width,
  356.                 WA_Height,    Project1Height + offy,
  357.                 WA_IDCMP,    BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  358.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
  359.                 WA_Gadgets,    Project1GList,
  360.                 WA_Title,    Project1Wdt,
  361.                 WA_ScreenTitle,    "                                 Nerve Axis",
  362.                 WA_PubScreen,    Scr,
  363.                 TAG_DONE )))
  364.     return( 4L );
  365.  
  366.     GT_RefreshWindow( Project1Wnd, NULL );
  367.  
  368.     Project1Render();
  369.  
  370.     return( 0L );
  371. }
  372.  
  373. void CloseProject1Window( void )
  374. {
  375.     if ( Project1Wnd        ) {
  376.         CloseWindow( Project1Wnd );
  377.         Project1Wnd = NULL;
  378.     }
  379.  
  380.     if ( Project1GList      ) {
  381.         FreeGadgets( Project1GList );
  382.         Project1GList = NULL;
  383.     }
  384. }
  385.  
  386.